home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / programr / cenviw1.zip / CENVILIB.DOC < prev    next >
Text File  |  1993-08-10  |  31KB  |  619 lines

  1.                     CEnvi Shareware Manual, Chapter 4:
  2.                              Function Library
  3.  
  4.  
  5.                       CEnvi unregistered version 1.0
  6.                                9 AUGUST 1993
  7.  
  8.                        CEnvi Shareware User's Manual
  9.  
  10.           Copyright 1993, Nombas, All Rights Reserved.
  11.           Published by Nombas, P.O. Box 875, Medford, MA 02155 USA
  12.           (617)391-6595, (617)391-5289
  13.  
  14.           Thank you for trying this shareware version of CEnvi from Nombas.
  15.  
  16. 4.  CEnvi Internal Function Library
  17.  
  18.           CEnvi includes a large library of internal functions that are
  19.           available for use in your CEnvi code.  (External function
  20.           libraries, and a developer toolkit for creating external
  21.           libraries, will be available in an upcoming incremental release.)
  22.  
  23. 4.1.  Standard Library
  24.  
  25.           The C language has long had a standard set of libraries that
  26.           contain routines included with nearly all C implementations.
  27.           Most of this standard library, as defined by ANSI and ISO, is
  28.           included internally to CEnvi, and so all of these routines are
  29.           available to any Cmm program executed by CEnvi.
  30.  
  31.           Minimal modifications have been added to the standard library to
  32.           support the differences between the Cmm and the C languages.  In
  33.           most cases, these modifications involve the redefinition of
  34.           variable pointers to become variables-passed-by-reference.
  35.           Usually, though, the Cmm call to one of these functions looks
  36.           identical to the C call.  The experienced C programmer should
  37.           feel right at home.
  38.  
  39.           A few functions have been dropped in this version, mostly those
  40.           dealing with locales.  A few functions have also been added
  41.           beyond those in the ANSI and ISO standards when those functions
  42.           seem to be common across most existing implementations of C
  43.           libraries.
  44.  
  45.             CLOCKS_PER_SEC: defined for system clock rate
  46.             FALSE: #define'd 0
  47.             TRUE: #define'd 1
  48.             NULL: #define'd 0
  49.             EXIT_FAILURE: failure program exit value
  50.             EXIT_SUCCESS: good program exit value
  51.             RAND_MAX: maximum number returned by rand()
  52.  
  53.             abort: Terminate program; probably due to error.
  54.               void abort()
  55.             abs: Return the absolute value of an integer.
  56.               int abs(int x)
  57.             acos: Calculate the arc cosine.
  58.               float acos(float x)
  59.             asctime: Convert data and time to an ASCII string.
  60.               string asctime(struct tm)
  61.             asin: Calculate the arc sine.
  62.               float asin(float x)
  63.             assert: Test a condition and abort if it is FALSE.
  64.               void assert(bool test)
  65.             atan: Calculate the arc tangent.
  66.               float atan(float x)
  67.             atan2: Calculate the arc tangent of a fraction.
  68.               float atan2(float y,float x)
  69.             atexit: Register function to be called at program exit.
  70.               void atexit(string functionName)
  71.             atof: Convert ascii string to a floating-point number
  72.               float atof(string str)
  73.             atoi: Convert ascii string to an integer.
  74.               int atoi(string str)
  75.             atol: Convert ascii string to an integer.
  76.               int atol(string str)
  77.             bsearch: Binary search for member of a sorted array.
  78.               int bsearch(var key,var[] SortedArray,[int
  79.               ElementCount,]string CompareFunction)
  80.             ceil: Ceiling; round up.
  81.               float ceil(float x)
  82.             clearerr: Clear end-of-file and error status for a file.
  83.               void clearerr(FILE stream)
  84.             clock: Get processor time.
  85.               int clock()
  86.             cos: Calculate the cosine.
  87.               float cos(float x)
  88.             cosh: Calculate the hyperbolic cosine.
  89.               float cosh(float x)
  90.             ctime: Convert date-time to an ascii string.
  91.               string ctime(int time)
  92.             difftime: Compute difference between two times.
  93.               float difftime(int time1,int time0)
  94.             div: Integer division, returning quotient and remainder.
  95.               struct div(int numerator,int denominator)
  96.             errno: Value of error condition
  97.               int errno
  98.             exit: Normal program termination.
  99.               void exit(int status)
  100.             exp: Compute the exponential function.
  101.               float exp(float x)
  102.             fabs: Absolute value.
  103.               float fabs(float x)
  104.             fclose: Close an open file.
  105.               int fclose(FILE stream)
  106.             feof: Test if at end of file stream.
  107.               bool feof(FILE stream)
  108.             ferror: Test for error on a file stream.
  109.               int ferror(FILE stream)
  110.             fflush: Flush stream for open file(s).
  111.               int fflush(FILE stream)
  112.             fgetc: Get a character from file stream.
  113.               int fgetc(FILE stream)
  114.             fgetpos: Get current position of a file stream.
  115.               int fgetpos(FILE stream,Var pos)
  116.             fgets: Get a string from an input stream.
  117.               string fgets([string buf[,int buflen],]FILE stream)
  118.             floor: Round down.
  119.               float floor(float x)
  120.             fmod: Modulus; calculate remainder.
  121.               float fmod(float x,float y)
  122.             fopen: Open a file.
  123.               FILE fopen(string filename,string mode)
  124.             fprintf: Formatted output to a file stream.
  125.               int fprintf(FILE stream,string format,...)
  126.             fputc: Write a character to a file stream.
  127.               int fputc(int c,FILE stream)
  128.             fputs: Write a string to a file stream.
  129.               int fputs(string s,FILE stream)
  130.             fread: Read data from a file.
  131.               int fread(byte[] DestBuffer,bufferLen,stream)
  132.               int fread(Var DestVar,int DataTypeInFile,stream)
  133.             freopen: Assign a new file specification to a file handle.
  134.               FILE freopen(string filename,string mode,FILE OldFP)
  135.             frexp: Break into a mantissa and an exponential power of 2.
  136.               float frexp(float x,int exponent)
  137.             fscanf: Formatted input from a file stream.
  138.               int fscanf(FILE stream,string format,...)
  139.             fseek: Set the file position for an opened file stream.
  140.               int fseek(stream,offset[,mode])
  141.             fsetpos: Set position of a file stream.
  142.               int fsetpos(stream,Var pos)
  143.             ftell: Get the current value of the file position.
  144.               int ftell(FILE stream)
  145.             fwrite: Write data to a file.
  146.               int fwrite(byte[] SourceBuffer,bufferLen,stream)
  147.               int fwrite(Var SourceVar,int DataTypeInFile,stream)
  148.             getc: Get a character from file stream.
  149.               int getc(FILE stream)
  150.             getch: Get a character from the keyboard; without echo.
  151.               int getch()
  152.             getchar: Get a character from standard input (keyboard).
  153.               int getchar()
  154.             getche: Get a character from the keyboard; with echo.
  155.               int getch()
  156.             getenv: Get an environment string.
  157.               string getenv(string VariableName)
  158.             gets: Read a string from standard input (keyboard).
  159.               string gets([string buf])
  160.             gmtime: Convert data and time to Greeenwich mean time (GMT).
  161.               struct gmtime(int t)
  162.             isalnum: Test for alphanumeric character.
  163.               bool isalnum(int c)
  164.             isalpha: Test for alphabetic character.
  165.               bool isalpha(int c)
  166.             isascii: Test for ASCII coded character.
  167.               bool isascii(int c)
  168.             iscntrl: Test for any control character.
  169.               bool iscntrl(int c)
  170.             isdigit: Test for any decimal-digit character.
  171.               bool isdigit(int c)
  172.             isgraph: Test for any printing character except for space.
  173.               bool isgraph(int c)
  174.             islower: Test for lower-case alphabetic letter.
  175.               bool islower(int c)
  176.             isprint: Test for any printing character including space.
  177.               bool isprint(int c)
  178.             ispunct: Test for punctuation character.
  179.               bool ispunct(int c)
  180.             isspace: Test for white-space character.
  181.               bool isspace(int c)
  182.             isupper: Test for upper-case alphabetic character.
  183.               bool isupper(int c)
  184.             isxdigit: Test for hexidecimal-digit character.
  185.               bool isxdigit(int c)
  186.             kbhit: Check if a keyboard keystroke is available.
  187.               bool kbhit()
  188.             labs: Return the absolute value of an integer (non-negative).
  189.               int labs(int x)
  190.             ldexp: Calculate mantissa * 2 ^ exp; inverse of frexp().
  191.               float ldexp(float mantissa,int exponent)
  192.             localtime: Convert data and time to borken-down structure.
  193.               struct localtime(int t)
  194.             ldiv: Integer division, returning quotient and remainder.
  195.               struct ldiv(int numerator,int denominator)
  196.             log: Calculate the natural logarithm.
  197.               float log(float x)
  198.             log10: Calculate the base-ten logarithm.
  199.               float log10(float x)
  200.             max: Return the largest of one or more values.
  201.               var max(var v1[,var v2[,var v3[,...]]])
  202.             memchr: Search a byte array, or blob, for a character.
  203.               byte[] memchr(byte[] array,byte c[,int size])
  204.             memcmp: Compare two byte arrays.
  205.               int memcmp(byte[] array1,byte[] array2[,int len])
  206.             memcpy: Copy bytes from one array to another.
  207.               byte[] memcpy(byte[] dest,byte[] src[,int len])
  208.             memicmp: Case-insensitive compare two byte arrays.
  209.               int memicmp(byte[] array1,byte[] array2[,int len])
  210.             memmove: Copy bytes from one array to another.
  211.               byte[] memmove(byte[] dest,byte[] src[,int len])
  212.             memset: Set values in a byte array to specific character.
  213.               byte[] memset(byte[] buf,int c[,int len])
  214.             min: Return the minimum of one or more values.
  215.               var min(var v1[,var v2[,var v3[,...]]])
  216.             mktime: Convert time structure into calendar time.
  217.               int mktime(struct TimeStruct)
  218.             modf: Split a value into integer and fractional parts.
  219.               float modf(float x,float i)
  220.             perror: Prints an message describing error in errno.
  221.               void perror(string s)
  222.             pow: Calculates x to the power of y.
  223.               float pow(float x,float y)
  224.             printf: Formatted output to the standard output (screen).
  225.               int printf(FILE stream,string format,...)
  226.             putc: Write a character to a file stream.
  227.               int putc(int c,FILE stream)
  228.             putchar: Write a character to stadnard output (screen).
  229.               int putchar(int c)
  230.             puts: Write a string to the the standard output (screen).
  231.               int puts(string s)
  232.             qsort: Sort an array using specified comparison function.
  233.               int qsort(var[] array,[int ElementCount,]string CmpFunction)
  234.             rand: Generate a random number.
  235.               int rand()
  236.             remove: Delete a file.
  237.               int remove(string filename)
  238.             rename: Rename a file.
  239.               int rename(string OldFilename,string NewFilename)
  240.             rewind: Reset file position to beginning of file.
  241.               void rewind(FILE stream)
  242.             scanf: Formatted input from the standard input (keyboard).
  243.               int scanf(string format,...)
  244.             sin: Calculate the sine.
  245.               float sin(float x)
  246.             sinh: Calculate the hyperbolic sine.
  247.               float sinh(float x)
  248.             sprintf: Formatted output to a string.
  249.               int sprintf(string buffer,FILE stream,string format,...)
  250.             sqrt: Calculate the square root.
  251.               float sqrt(float x)
  252.             srand: Initialize random number generator
  253.               void srand([int seed])
  254.             sscanf: Formatted input from a string.
  255.               int sscanf(string buffer,string format,...)
  256.             strcat: Append one string onto the end of another.
  257.               string strcat(string dest,string src)
  258.             strchr: Search a string for a character.
  259.               string strchr(string s,byte c)
  260.             strcmp: Compare two strings.
  261.               int strcmp(string s1,string s2)
  262.             strcmpi: Case-insensitive compare two strings.
  263.               int strcmpi(string s1,string s2)
  264.             strcpy: Copy from one string into another.
  265.               string strcpy(string dest,string src)
  266.             strcspn: Search string for first from a set of characters.
  267.               int strcspn(string Str,string CharSet)
  268.             strerror: Get a string describing an error number.
  269.               string (int err)
  270.             strftime: Formatted write of date and/or time into a string.
  271.               int strftime(string buf,[int Size,]string Format, struct tm)
  272.             stricmp: Case-insensitive compare two strings.
  273.               int stricmp(string s1,string s2)
  274.             strlen: Length of a string.
  275.               int strlen(string s)
  276.             strlwr: Converts string to lower-case characters.
  277.               string strlwr(string s);
  278.             strncat: Append up to len bytes of one string onto another.
  279.               string strncat(string dest,string src,int MaxLen)
  280.             strncmp: Compare part of two strings.
  281.               int strncmp(string s1,string s2,int MaxLen)
  282.             strncmpi: Case-insensitive compare part of two strings.
  283.               int strncmpi(string s1,string s2,int MaxLen)
  284.             strncpy: Copy given len bytes from one string into another.
  285.               string strncpy(string dest,string src,int MaxLen)
  286.             strnicmp: Case-insensitive compare part of two strings.
  287.               int strnicmp(string s1,string s2,int MaxLen)
  288.             strpbrk: Search string for byte from another string.
  289.               string strpbrk(string Str,string CharSet)
  290.             strrchr: Find last character occurrence in a string
  291.               string strrchr(string s,byte c)
  292.             strspn: Search string for first character not in a set.
  293.               int strspn(string Str,string CharSet)
  294.             strstr: Search string for a substring.
  295.               string strstr(string Str,string SubStr)
  296.             strtod: Convert a string to a floating-point value.
  297.               float strtod(string Str[,string End])
  298.             strtok: Search a string for delimited tokens.
  299.               string strtok(string Source,string Delimiters)
  300.             strtol: Convert a string to an integer value.
  301.               int strtol(string Str)
  302.               int strtol(string Str,string End)
  303.               int strtol(string Str,string End,string Radix)
  304.             strupr: Converts string to upper-case characters.
  305.               string strupr(string s)
  306.             system: Pass a command to the command processor.
  307.               int system(string Command)
  308.               int system(string CommandFormat,var arg1,...)
  309.             tan: Calculate the tangent.
  310.               float tan(float x)
  311.             tanh: Calculate the hyperbolic tangent.
  312.               float tanh(float x)
  313.             time: Get current time.
  314.               int time([t])
  315.             tmpfile: Create a temporary binary file.
  316.               FILE tmpfile()
  317.             tmpnam: Get a temporary file name.
  318.               string tmpname([string filename])
  319.             toascii: Translate character to ASCII (7-bit) format.
  320.               int toascii(int c)
  321.             tolower: Translate character to lower-case if it is upper-case.
  322.               int tolower(int c)
  323.             toupper: Translate character to upper-case if it is lower-case.
  324.               int toupper(int c)
  325.             ungetc: Push character back to input stream.
  326.               int ungetc(int c,FILE stream)
  327.             va_arg: Retrieve variable from variable argument list.
  328.               var va_arg(blob valist[,int offset])
  329.               var va_arg(int offset)
  330.               int va_arg()
  331.             va_end: Terminate variable argument list.
  332.               void va_end(blob valist)
  333.             va_start: Initialize variable argument list.
  334.               int va_start(blob va_list[,var InputVar])
  335.             vfprintf: Formatted output to a file stream using arg_list.
  336.               int vfprintf(FILE stream,string format,blob valist)
  337.             vfscanf: Formatted input from a file stream using arg_list.
  338.               int vfscanf(FILE stream,string format,blob valist)
  339.             vprintf: Formatted output to screen using arg_list.
  340.               int vfprintf(FILE stream,blob valist)
  341.             vscanf: Formatted input from keyboard using arg_list.
  342.               int vscanf(string format,blob valist)
  343.             vsprintf: Formatted output to a string using arg_list.
  344.               int vsprintf(string buffer,FILE stream,string format,
  345.                            blob valist)
  346.             vsscanf: Formatted input from a string.
  347.               int vsscanf(string buffer,string format,blob valist)
  348.  
  349. 4.2.  CEnvi Cross-platform Library Additions
  350.  
  351.           CEnvi with Cmm adds some additional function calls to the
  352.           standard C library.  Some of these functions are ones we wish
  353.           were in the standard library, and others are functions that are
  354.           particularly useful in the types of scripting and command-line
  355.           environments where CEnvi is most likely to be used.
  356.  
  357.             #define VERSION_MAJOR // 1 in version "1.0 shareware" release
  358.             #define VERSION_MINOR // 0 in version "1.0 shareware" release
  359.             #define VERSION_STRING // "shareware" for "1.0 shareware"
  360.  
  361.           Depending on which version of CEnvi is running, one of the
  362.           following values will be defined:
  363.  
  364.             #define _DOS_         1
  365.               or
  366.             #define _OS2_         1
  367.               or
  368.             #define _WINDOWS_     1
  369.  
  370.             BLObGet: Get datum from a Binary Large Object (BLOb).
  371.               byte BLObGet(blob BLObVar,int offset,int DataType=UWORD8)
  372.               int BLObGet(blob BLObVar,int offset,int DataType)
  373.               float BLObGet(blob BLObVar,int offset,int DataType)
  374.               byte[] BLObGet(blob BLObVar,int offset,int bufferLen)
  375.             BLObPut: Put datum into a Binary Large Object (BLOb).
  376.               int BLObPut(blob BLObVar[,int offset,]Var v,int DataType)
  377.               int BLObPut(blob BLObVar[,int offset,]byte[] buffer,
  378.                           int bufferLen)
  379.             BLObSize: Determine size of a Binary Large Object (BLOb).
  380.               int BLObSize(blob BLObVar[,int SetSize])
  381.             byte: Return numerical value as represented by a byte.
  382.               byte byte(var v)
  383.             defined: Test if variable has been defined.
  384.               bool defined(var v)
  385.             Directory: Search directory listing for a file specification.
  386.               struct[] Directory([,string SearchSpec
  387.                    [,bool RecurseSubdirectories
  388.                    [,int IncludeAttrib
  389.                    [,int RequiredAttrib]]]])
  390.             float: Return numerical value as a floating-point number.
  391.               float float(var v)
  392.             FullPath: Convert partial path specification to full path name.
  393.               string FullPath(string PathSpec)
  394.             function: Call a function by name.
  395.               var function(string FunctionName[,...])
  396.             GetArraySpan: Determine size of an array.
  397.               int GetArraySpan(var[] array[,int MinIndex])
  398.             integer: Return numerical value as represented by an integer.
  399.               int integer(var v)
  400.             peek: Read data from memory location.
  401.               byte peek(int address)
  402.               byte peek(int address,int DataType=UWORD8)
  403.               int peek(int address,int DataType)
  404.               float peek(int address,int DataType)
  405.               byte[] peek(int address,int bufferLen)
  406.             pointer: Get address of variable array or variable datum.
  407.               int pointer(var)
  408.             poke: Write data to memory location.
  409.               int poke(int address,byte b)
  410.               int poke(int address,Var v,int DataType)
  411.               int poke(int address,byte[] buffer,int bufferLen)
  412.             ScreenClear: Clear screen.
  413.               void ScreenClear()
  414.             ScreenCursor: Get or set cursor position in the visible screen.
  415.               struct ScreenCursor([int col[,int row]])
  416.             ScreenSize: Get the height and width of the screen.
  417.               struct ScreenSize()
  418.             SetArraySpan: Set size of an array.
  419.               void SetArraySpan(var[] array[,int MinIndex],int MaxIndex)
  420.             spawn: Run an external executable.
  421.               int spawn(int mode,string ExecutionCommandLine)
  422.               int spawn(int mode,string ExecutableSpec[,var arg1
  423.                         [,var arg2[,var arg3[,...]]]])
  424.               int spawn(int mode,string ExecutableSpec
  425.                         [,string[] ArgStrings])
  426.             SplitFileName: Determine file directory, name, and extension.
  427.               structure SplitFileName(string FileSpec)
  428.             Suspend: Suspend program execution for a while.
  429.               void Suspend(int milliSecondDelay)
  430.             undefine: Make a variable undefined.
  431.               void undefine(var v)
  432.  
  433. 4.3.  CEnvi DOS Library (also for Windows)
  434.  
  435.           The routines in this section are specific to the DOS (MS-DOS,
  436.           PC-DOS, DR-DOS) version of CEnvi.  They are included internally
  437.           to the CEnvi program, and so all of these routines are available
  438.           to any Cmm program executed by CEnvi under DOS (or Windows).
  439.  
  440.           Most of these routines allow the programmer to have more power
  441.           than is generally acknowledged as safe under Cmm's guidelines,
  442.           and so you'd better know what you're doing when you use these
  443.           commands, for they provide plenty of rope with which to hang
  444.           yourself.
  445.  
  446.           Windows is built atop DOS, and so the functions in this library
  447.           are also available in the Windows version of CEnvi.
  448.  
  449.             Address: Convert segment:offset pointer into memory address.
  450.               int Address(int segment,int offset)
  451.             asm: Execute imbedded assembled code.
  452.               int asm(byte[] buf[,int ax[,int bx[,int cx[,int dx]]]])
  453.             inport: Read byte from a hardware port.
  454.               byte inport(int portid)
  455.             interrupt: Execute an 8086 interrupt.
  456.               bool interrupt(int Interrupt,RegIn[,RegOut])
  457.             offset: Break far pointer into segment:offset components.
  458.               int offset(byte[] buf)
  459.               int offset(int address)
  460.             outport: Write byte to a hardware port.
  461.               void outport(int portid,byte value)
  462.             segment: Break far pointer into segment:offset components.
  463.               int segment(byte[] buf)
  464.               int segment(int address)
  465.  
  466. 4.4.  CEnvi OS/2 2.x Library
  467.  
  468.           The routines in this section are specific to the OS/2 version of
  469.           CEnvi.  They are included internally to the CEnvi program, and so
  470.           all of these routines are available to any Cmm program executed
  471.           by CEnvi under OS/2 2.x.
  472.  
  473.           Most of these routines allow the programmer to have more power
  474.           than is generally acknowledged as safe under Cmm's guidelines,
  475.           and so you'd better know what you're doing when you use these
  476.           commands, for they provide plenty of rope with which to hang
  477.           yourself.
  478.  
  479.             DynamicLink: Call a function in a Dynamic Link Library (DLL).
  480.               int DynamicLink(string ModuleName,string ProcedureName,
  481.                               int BitSize,int CallingConvention,...)
  482.               int DynamicLink(string ModuleName,int Ordinal,
  483.                               int BitBize,int CallingConvention,...)
  484.               int DynamicLink(int CallGate,
  485.                               int BitSize,int CallingConvention,...)
  486.             ESet: Write new environment variables settings into a file.
  487.               bool ESet(string FileSpec)
  488.             ProcessList: Get list of all running processes.
  489.               struct[] ProcessList([bool IncludeThreadInfo])
  490.             somMethod: Call a SOM (system object model) method.
  491.               int somMethod(int somObject,int MethodOffset,...)
  492.  
  493. 4.5.  CEnvi Windows 3.x Library
  494.  
  495.           The routines in this section are specific to the Windows 3.x
  496.           version of CEnvi.  They are included internally to the CEnvi
  497.           program, and so all of these routines are available to any Cmm
  498.           program executed by CEnvi under Windows.
  499.  
  500.           Most of these routines allow the programmer to have more power
  501.           than is generally acknowledged as safe under Cmm's guidelines,
  502.           and so you'd better know what you're doing when you use these
  503.           commands, for they provide plenty of rope with which to hang
  504.           yourself.
  505.  
  506.           Windows is built atop DOS, and so the functions in the DOS
  507.           library are also available in the Windows version of CEnvi.
  508.  
  509.             DynamicLink: Call a function in a Dynamic Link Library (DLL).
  510.               int DynamicLink(string LibraryName,string ProcedureName,
  511.                               int ReturnType,int CallingConvention,...)
  512.               int DynamicLink(string LibraryName,int ProcedureOrdinal,
  513.                               int ReturnType,int CallingConvention,...)
  514.             Instance: Get CEnvi instance for this session.
  515.               int Instance()
  516.             ScreenHandle: Get Windows' handle for the CEnvi text screen.
  517.               int ScreenHandle()
  518.             ScreenSize: Get or set the height and width of the screen.
  519.               struct ScreenSize()
  520.               struct ScreenSize(int col, int row[,int RowsRemembered])
  521.             WindowList: Retrieve list of window handles.
  522.               int[] WindowList([int WinHandle])
  523.  
  524. -------------------------------- FILE LIST --------------------------------
  525. The CEnvi Unregistered Shareware package includes the files in the
  526. following list.  You are not permitted to upload or otherwise transfer
  527. copies of any registered version of CEnvi that does not include all of the
  528. files in this list.
  529.  
  530. *CENVI.EXE: CEnvi shareware executable for DOS, OS/2, or Windows.
  531. *CENVI.DOC: CEnvi Shareware Manual, Chapter 1: CEnvi Unregistered Shareware
  532. *CMMTUTOR.DOC: CEnvi Shareware Manual, Chapter 2: Cmm Language Tutorial
  533. *CMM_VS_C.DOC: CEnvi Shareware Manual, Chapter 3: Cmm versus C, for C
  534.   Programmers
  535. *CENVILIB.DOC: CEnvi Shareware Manual, Chapter 4: Function Library
  536. *FILELIST.DOC: This file.
  537. *LICENSE.DOC: CEnvi Unregistered Shareware License Agreement
  538. *REGISTER.DOC: CEnvi registration form
  539. *INSTALL.CMM: Cmm source file for installing this shareware version
  540. * *.CMM, *.CMD, *.BAT, *.LIB: Many many sample programs using CEnvi.  See
  541.   CENVI.DOC for a complete list.
  542.  
  543. ----------------------------- REGISTRATION -------------------------------
  544. This is a shareware release.  Please register.  As a registered CEnvi user
  545. you will receive:
  546. *The latest version of CEnvi for all supported platforms (currently DOS,
  547.   OS/2, and Windows).
  548. *The CEnvi user's manual (almost 100 pages, including a description of the
  549.   Cmm programming language, a tutorial for those who have never programmed,
  550.   and descriptions and examples of the nearly 150 functions included in the
  551.   CEnvi library).
  552. *Free incremental electronic downloads for new versions of CEnvi for all
  553.   supported operating systems.
  554. *Unlimited support from Nombas and CEnvi/Cmm users through CompuServe
  555.   (72212,1622), internet (bsn@world.std.com), the cenvi-cmm e-mail mailing
  556.   list (cenvi-cmm@world.std.com), and the Nombas BBS (617-391-6595).
  557. *Access to the growing list of CEnvi utilities and libraries (some of which
  558.   are included in this unregistered shareware package, and others are
  559.   contributed by Nombas and CEnvi/Cmm users to the electronic locations
  560.   described above).
  561.  
  562. ------------------------- CENVI REGISTRATION FORM -------------------------
  563. Thank you for registering your shareware copy of CEnvi version 1.0.  Please
  564. fill out and mail in this form, along with payment.
  565.  
  566. Where did you get CEnvi? ______________________________________________
  567.  
  568. Name: _________________________________________________________________
  569.  
  570. Company: ______________________________ Position: _____________________
  571.  
  572. Address: ______________________________________________________________
  573.  
  574. _______________________________________________________________________
  575.  
  576. ______________________________________________________________________
  577.  
  578. Country: _________________________   (add ZIPcode if applicable)
  579.  
  580. Phone: ___________________________  EMail: ______________________________
  581.  
  582.           Diskette size: [  ] 3.5"   [  ] 5.25"
  583.  
  584. CEnvi Registered License ............ Quantity _____ x $38.00 = $ _________
  585. Additional CEnvi Registered licenses for your
  586. organization (does not include additional manuals
  587. or diskettes).  You must already be a registered
  588. user to purchase additional licenses.
  589.                     Additonal License Quantity _____ x $15.00 = $ _________
  590. Additional CEnvi Manuals.  You must already be a 
  591. registered user to purchase additional manuals.
  592.                    Additional Manuals Quantity _____ x $10.00 = $ _________
  593. Friend-of-Cmm Discount: enter $-5.00, and BBS
  594. location, if you have uploaded CEnvi Unregistered
  595. Shareware to a BBS where it wasn't already available.
  596.     BBS Location ____________________________________________   $-_________
  597. Shipping outside USA, Canada, or Mexico  $4.00 ................ $ _________
  598.                                                        Subtotal $ _________
  599. Massachusetts residents please add 5% sales tax ............... $ _________
  600.  
  601.                                                           Total $ _________
  602.  
  603. Include a check or money order for this total, in U.S. funds and drawn on a
  604. U.S. bank, payable to Nombas.  Mail with this form to:
  605.                Nombas
  606.                P.O. Box 875
  607.                Medford, MA  02155   USA
  608.  
  609. Nombas may also be contacted at:
  610.      BBS: (617)391-6595
  611.      Phone: (617)391-6595, (617)391-5289
  612.      Internet: bsn@world.std.com
  613.      CompuServe: 72212,1622
  614.  
  615.  
  616. Nombas welcomes all comments, good or bad, regarding CEnvi and Cmm.  Please
  617. use the back of this form to give us all your suggestions about CEnvi and
  618. Cmm.  This is version 1.0; Where should we go from here?
  619.